//


"use strict"

// arguments长度

// arguments[i]其中i始终是参数的有效整数索引，并且不能越界

// 永远不要直接使用没有.length或[i]的参数

// 严格来说，fn.apply（y，arguments）是可以的，其他什么都不是，例如.slice。函数#apply是特殊的。

// 请注意，向函数添加属性（例如fn.$inject=…）和绑定函数（即函数#bind的结果）会生成隐藏类，因此在使用#apply时是不安全的。
// 请注意，当您以上述安全方式使用参数对象时，关于提及导致参数对象分配的参数的FUD是不真实的。
// apply
const a = function(){
  console.log(arguments)
  let b = []
  b.push.apply(b,arguments)
  console.log(b)

}
a(1,12,3,44,1,55)


//slice

const c = function(){
  "use strict"
  console.log(arguments)

  // b.push.apply(b,arguments)
  let b = Array.prototype.slice.call(arguments)
  console.log(b)

}
c(1,12,3,44,1,55)